package com.example.sup.utils;

import java.sql.Time;
import java.util.List;

/**
 * @ClassName StringUtil
 * @Description {TODO}
 * @Author 李哲
 * @Date 12:04 2024/8/1
 * @Version 1.0
 */
public class StringUtil {
    /**
     * 根据星期和时间构建cron表达式
     * @param weekData
     * @param time
     * @return
     * 秒 分 时 日 月 星期
     */
    public static String containCron(List<String> weekData, Time time) {
        try {
            StringBuffer cron=new StringBuffer("");
            cron.append(time.getSeconds()+" "); //秒 5 0 0
            cron.append(time.getMinutes()+" ");  //分
            cron.append(time.getHours()+" ");  //分
            cron.append("? * ");
            for (int i = 0; i <weekData.size(); i++) {
                switch (weekData.get(i)) {
                    case "每天":
                        cron.append("*");
                        break;
                    case "星期日":
                        cron.append("SUN");
                        break;
                    case "星期一":
                        cron.append("MON");
                        break;
                    case "星期二":
                        cron.append("TUE");
                        break;
                    case "星期三":
                        cron.append("WED");
                        break;
                    case "星期四":
                        cron.append("THU");
                        break;
                    case "星期五":
                        cron.append("FRI");
                        break;
                    case "星期六":
                        cron.append("SAT");
                        break;
                    default:
                        break;
                }
                if(i!=weekData.size()-1) {
                    cron.append(",");
                }
            }
            return cron.toString();
        }catch (Exception e){
            return null;
        }
    }
    /**
     * 设定位数，自动在前面补0
     * @param str
     * @param strLength
     * @return
     */
    public static String addZeroForNum(String str, int strLength) {
        int strLen = str.length();
        StringBuffer sb = null;
        if(strLen>strLength) {
            str=str.substring(str.length()-4);
        }
        while (strLen < strLength) {
            sb = new StringBuffer();
            sb.append("0").append(str);// 左补0
            // sb.append(str).append("0");//右补0
            str = sb.toString();
            strLen = str.length();
        }
        return str;
    }
    /**
     * 判断字串是否无内容（空或空字串为true，其它false）
     * @param str
     * @return
     */
    public static final boolean isEmpty(String str){
        if(str == null || "".equals(str.trim())){
            return true;
        }
        return false;
    }
    /**
     * 判断多个字串是否无内容（空或空字串为true，其它false）
     * @param str
     * @return
     */
    public static final boolean isEmpty(String... str){
        for (String arg : str) {
            if(arg == null || "".equals(arg.trim())){
                return true;
            }
        }
        return false;
    }
    /**
     * 判断多个字串是否无内容（空或空字串为true，其它false）
     * @param str
     * @return
     */
    public static final boolean isIntty(Integer in){
        if(in == null){
            return true;
        }
        return false;
    }
    /**
     * 判断两个数组是否有重叠部分
     * @param str
     * @param str1
     * @return
     */
    public static boolean containRepeatChar(List<String> str, String str1){
        try {
            String[] strs=str1.split(",");
            for (int i = 0; i < str.size(); i++) {
                for (int j = 0; j < strs.length; j++) {
                    if (strs[j].equals(str.get(i))) {
                        return true;
                    }
                }
            }
            return false;
        }catch (Exception e){
            return false;
        }
    }
}
